iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
1

Linux 服務管理

systemctl 指令

systemctl指令是系統服務管理器指令,實際上它是將servicechkconfig這兩個命令組合到一起。

  • systemctl enable [服務].service:使某服務自動啟動
  • systemctl disable [服務].service:使某服務不自動啟動
  • systemctl status [服務].service:服務詳細信息
  • systemctl is-active [服務].service:顯示是否啟動
  • systemctl list-units -- type =service:顯示所有已啟動的服務
  • systemctl start [服務].service:啟動某服務
  • systemctl stop [服務].service:停止某服務
  • systemctl restart [服務].service:重啟某服務

Linux 開機流程簡介

了解開機流程,當系統發生問題時,可以更有效的除錯,而 Linux 開機的流程主要會經過以下 6 個步驟:

  1. BIOS
    當按下電源按鈕後,最先載入的是 BIOS, BIOS 會載入 CMOS 資料,然後進行自行檢測。之後 BIOS 會從硬碟,CD-ROM,USB 隨身碟等搜尋 boot loader,當 BIOS 從開機啟動裝置順序找到 boot loader 後,會將控制權交給MBR。

  2. MBR(Master Boot Record)
    它儲存在啟動裝置的第一個磁區,裡面包含了GRUB的資訊,MBR 會載入及執行GRUB boot loader(grub2,spfdisk等)。

  3. GRUB(Grand Unified Bootloader)
    進入 GRUB 後,會出現 splash screen,如果沒有按任何按鈕,幾秒後 GRUB 會自動載入預設的 kernel,如果有安裝多個 kernel,可以在這時選擇想要啟動的 kernel,在 Redhat 7 及 CentOS 7 下, GRUB 的設定檔在 /boot/grub2/grub.cfg(How to Install Grub Customizer in Ubuntu 18.04 LTS)

  4. Kernel
    Kernel 會立即載入硬件的設定和載入所有需要的驅動程式。

  5. Init
    init 從檔案 /etc/inittab 的 “initdefault” 參數讀取預設 run level,Linux 的 6 個 run level:

    • 0 – halt (關機)
    • 1 – Single user mode
    • 2 – Multiuser, without NFS (The same as 3, if you do not have networking)
    • 3 – Full multiuser mode
    • 4 – unused
    • 5 – X11
    • 6 – reboot (重新開機)
  6. Runlevel Scripts
    根據不同的 runlevel,系統會在不同的目錄讀取初始化 scripts 啟動,儲存它們的目錄 run level 區分,分別是:

0 : /etc/rc.d/rc0.d
1 : /etc/rc.d/rc1.d
2 : /etc/rc.d/rc2.d
3 : /etc/rc.d/rc3.d
4 : /etc/rc.d/rc4.d
5 : /etc/rc.d/rc5.d
6 : /etc/rc.d/rc6.d

完成啟動 runlevel scripts 後,Linux 便啟動完成。

心得

雖然現在是使用windows系統開啟Ubuntu撰寫,但未來如果要使用到Linux系統,還是很重要的。

參考

http://man.linuxde.net/systemctl
https://www.phpini.com/linux/linux-boot-process


上一篇
Day 28 學習日誌
下一篇
Day 30 學習日誌
系列文
Linux 30天學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
laudai
iT邦新手 5 級 ‧ 2021-08-15 23:11:02

幫備註一下,此篇文章後半段為init的說明,有興趣的話可以看
https://zh.wikipedia.org/zh-tw/Init

若是以Ubuntu作為學習的使用者,在15.04 已切換成Systemd
相關文章: SystemdForUpstartUsers

Systemd 一些文件:
https://www.freedesktop.org/software/systemd/man/systemd.service.html

我要留言

立即登入留言